package com.yy.job.common.dao;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.yy.job.common.dao.po.YYJobDO;
import com.yy.job.common.utils.PagingParam;

public interface YYJobDOExtMapper {
	
	/**
	 * 从queue_job表中查询状态为("C")的数据
	 * 
	 * @param moduleCode
	 * @param start
	 * @param limit
	 * @return
	 */
	List<YYJobDO> selectPendingNewJobByPage(
		@Param("projectCode") String projectCode,
		@Param("moduleCode") String moduleCode,
		@Param("executeTime") Date executeTime, @Param("limit") Integer limit);
	
	/**
	 * 从queue_job表中查询状态为('L','F')的数据
	 * 
	 * @param moduleCode
	 * @param lastJobId
	 * @param limit
	 * @return
	 */
	List<YYJobDO> selectPendingFailJobByPage(
		@Param("projectCode") String projectCode,@Param("moduleCode") String moduleCode,
		@Param("lastJobId") Long lastJobId, @Param("pendingBackDate")Date pendingBackDate, @Param("limit") Integer limit);

//	int updateJobStatusByID(@Param("id") Long id, @Param("oldStatus") String oldStatus,
//			@Param("oldModifier") String oldModifier, @Param("newStatus") String newStatus,
//			@Param("modifier") String modifier);
	
	/**
	 * 修改执行次数+1
	 * 
	 * @param id
	 * @param modifier
	 * @param operateDate
	 * @return
	 */
	int updateJobExecCountByID(@Param("id") Long id, @Param("modifier") String modifier, @Param("operateDate") Date operateDate);

	/**
	 * 分页查询job
	 * 
	 * @param paramDTO
	 * @return
	 */
	List<YYJobDO> listPageJob(PagingParam paramDTO);
	
	/**
	 * 查询job条数
	 * 
	 * @param paramDTO
	 * @return
	 */
	Integer countPageJob(PagingParam paramDTO);
}
